package com.hospital.workstation.domain.bo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.hospital.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 药历用药汇总业务对象 hospital_medical_record
 *
 * @author whb
 * @date 2023-02-13
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class MedicalRecordBo extends BaseEntity {

    /**
     * 用药汇总ID
     */
    // @NotNull(message = "用药汇总ID不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 病历号
     */
    // @NotNull(message = "病历号不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer medicalRecordNo;

    /**
     * 医嘱明细ID，HIS产生单条医嘱唯一标识
     */
    private String orderItemId;

    /**
     * 医嘱组号，HIS产生同一次就诊有相同的医嘱组号
     */
    private String orderGroupId;

    /**
     * 用药目的
     */
    // @NotBlank(message = "用药目的不能为空", groups = { AddGroup.class, EditGroup.class })
    private String purpose;

    /**
     * 药物名称
     */
    // @NotBlank(message = "药物名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String pillsName;

    /**
     * 用法用量
     */
    // @NotBlank(message = "用法用量不能为空", groups = { AddGroup.class, EditGroup.class })
    private String amount;

    /**
     * 单次剂量
     */
    private String amountPer;

    /**
     * 用法
     */
    private String pillsUsage;

    /**
     * 频次
     */
    private String frequency;

    /**
     * 是否继续使用，字典：系统是否（Y是 N否）
     */
    // @NotBlank(message = "是否继续使用，字典：系统是否（Y是 N否）不能为空", groups = { AddGroup.class, EditGroup.class })
    private String isContinue;

    /**
     * 用药周期
     */
    private String pillsCycle;

    /**
     * 起始日期
     */
    // @NotNull(message = "起始日期不能为空", groups = { AddGroup.class, EditGroup.class })
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone = "GMT+8")
    private LocalDateTime beginDate;

    /**
     * 结束日期
     */
    // @NotNull(message = "结束日期不能为空", groups = { AddGroup.class, EditGroup.class })
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone = "GMT+8")
    private LocalDateTime endDate;

    /**
     * 用药类型（0现病史 1既往病史 2初始药物治疗 3药历小结 4药品医嘱 5初始饮片 6小结饮片 7出院用药 8教育用药 9教育用药中药饮片）
     */
    // @NotBlank(message = "用药类型（0现病史 1既往病史 2初始药物治疗 3药历小结 4药品医嘱 5初始饮片 6小结饮片 7出院用药）不能为空", groups = { AddGroup.class, EditGroup.class })
    private String medicalType;


}
